home *** CD-ROM | disk | FTP | other *** search
/ Isometric Game Programming with DirectX 7.0 / Isometric Game Programming.iso / source / chapter21 / isohex21_1 / isorenderer.h < prev    next >
C/C++ Source or Header  |  2000-08-17  |  2KB  |  71 lines

  1. //IsoRendere.h
  2. #ifndef __ISORENDERER_H__
  3. #define __ISORENDERER_H__
  4.  
  5. #include "IsoHexCore.h"
  6. #include <ddraw.h>
  7.  
  8. //rendering function pointer typedef
  9. typedef void (*RENDERFN)(LPDIRECTDRAWSURFACE7 lpddsDst,RECT* rcClip,int xDst,int yDst,int xMap,int yMap);
  10.  
  11. //CRenderer Declaration
  12. class CRenderer
  13. {
  14. public:
  15.     ///////////////////
  16.     //members
  17.     ///////////////////
  18.     //surfaces
  19.     LPDIRECTDRAWSURFACE7 lpddsBackBuffer;//back buffer
  20.     LPDIRECTDRAWSURFACE7 lpddsFrameBuffer;//frame buffer
  21.     //isohexcore components
  22.     CTilePlotter* pTilePlotter;//plotter
  23.     CTileWalker* pTileWalker;//walker
  24.     CMouseMap* pMouseMap;//mousemap
  25.     CScroller* pScroller;//scroller
  26.     //update RECT list
  27.     RECT* rcUpdateList;//must be allocated
  28.     int iUpdateRectCount;//number of RECTs in the update list
  29.     int iUpdateRectIndex;//stores the next update RECT in the list
  30.     //update map
  31.     bool* bMap;//will be allocated with enough space for the entire map
  32.     int iMapWidth;//width of the map
  33.     int iMapHeight;//height of the map
  34.     //extent rect
  35.     RECT rcExtent;//extent rect, used when adding tiles to the update list
  36.     //rendering function
  37.     RENDERFN RenderFunction;//function used to render a tile
  38.     /////////////////////
  39.     //member functions
  40.     /////////////////////
  41.     //constructor
  42.     CRenderer();
  43.     virtual ~CRenderer();
  44.     //destructor
  45.     //surfaces
  46.     void SetBackBuffer(LPDIRECTDRAWSURFACE7 lpdds);
  47.     void SetFrameBuffer(LPDIRECTDRAWSURFACE7 lpdds);
  48.     //isohexcore components
  49.     void SetPlotter(CTilePlotter* pPlotter);
  50.     void SetWalker(CTileWalker* pWalker);
  51.     void SetMouseMap(CMouseMap* pMMap);
  52.     void SetScroller(CScroller* pScroll);
  53.     //update list
  54.     void SetUpdateRectCount(int iMaxRects);//sets up the rectangle list
  55.     //update map
  56.     void SetMapSize(int MapWidth,int MapHeight);//sets up the update map
  57.     //rendering functions
  58.     void SetRenderFunction(RENDERFN RendFunc);
  59.     //extent rect
  60.     void SetExtentRect(RECT* rcExt);
  61.     //add rect to list
  62.     void AddRect(RECT* prcAdd);
  63.     void AddTile(int mapx,int mapy);
  64.     //scroll the frame
  65.     void ScrollFrame(int scrollx,int scrolly);
  66.     //update the frame
  67.     void UpdateFrame();
  68. };
  69.  
  70.  
  71. #endif